home *** CD-ROM | disk | FTP | other *** search
/ Amiga Mag HDD Backup / Amiga Mag HDD Backup.zip / Amiga Mag HDD Backup / Alexander.img.bin / Alexander.img / 9.12 / Riley⁄Guru Review / GuruBookReview.txt < prev   
Text File  |  1983-05-04  |  13KB  |  335 lines

  1.  
  2. PRODUCT NAME
  3.  
  4.         The Amiga Guru Book
  5.          by Ralph Babel
  6.  
  7. BRIEF DESCRIPTION
  8.  
  9.         This is an AmigaDOS reference manual that documents the Amiga
  10. operating system with many examples in both C and assembler, and with
  11. texts about the functions in AmigaDOS. The main text of this excellent
  12. book gives specific and accurate descriptions of operating system
  13. calls, library functions, devices, handlers, and information on the
  14. filing systems. There is information on low-level hardware and
  15. software, including memory maps of both, and covers OS1.2 up to 2.1.
  16. This book is written in English.
  17.  
  18.  
  19. ABOUT THE AUTHOR
  20.  
  21.         Babel really gets around. I've seen his name in several
  22. programs I use. If you frequent the Amiga newsgroups on UseNet, you
  23. will likely find Ralph in comp.sys.amiga.programmer. Amongst his
  24. credits, he wrote all of Great Valley Products' Series-II drivers and
  25. related system software.
  26.  
  27.  
  28. COMPANY INFORMATION
  29.  
  30.         Author:         Ralph Babel
  31.         ISBN:           No ISBN number
  32.         Guru-No.:       8703 8001  C7E4 D9E4 (on the front cover)
  33.         Guru Type:      AT_DeadEnd AG_OpenLib AO_ExecLib
  34.  
  35.  
  36.  
  37. HARDWARE AND SOFTWARE REQUIREMENTS
  38.  
  39.         None required, but an Amiga computer with a C compiler and an
  40.         assembler highly recommended. AmigaDOS 2.04 also recommended.
  41.  
  42. MACHINES USED FOR TESTING
  43.  
  44.         Amiga 500 1 meg. chip ram, 8 meg. fast ram, OS1.3 and 2.1
  45.         Amiga 4000/040 2 meg. chip ram, 14 meg. fast ram, OS3.0
  46.  
  47. SOFTWARE USED FOR TESTING
  48.  
  49.         SAS/C 6.3 Amiga C compiler and assembler development system.
  50.         HiSoft DevPac 3.04 Amiga Assembler development system.
  51.  
  52. THE BOOK
  53.  
  54.         736 pages including index, and ASCII table on the last page.
  55.         Paperback, well bound with coated covers.
  56.         Text is well written, fluid and easy to read.
  57.         Weight, about 2 pounds.
  58.  
  59.  
  60. OVERVIEW
  61.  
  62.  
  63.         This book is THE ultimate reference on AmigaDOS and will serve
  64. any programmer very well, from novice to expert. If you are an Amiga
  65. enthusiast interested in programming, then this is an essential book
  66. to have on hand. Much of the information in this volume cannot be
  67. found anywhere else, at least not all in one place.
  68.  
  69.  
  70. REVIEW
  71.  
  72.  
  73.         The Amiga Guru Book examples assume at least kickstart 37.175
  74. (2.04), for the most part, although all examples will work with 1.3.
  75. Some of the code fragments require 2.04 or later. They were developed
  76. with SAS/C 5.10b/6.2 and the 2.04 include files. They also compile
  77. with SAS/C 6.3 and the assembler examples assemble well with DevPac
  78. V3.04 with a few minor changes.
  79.  
  80.         Throughout the text, obsolete features as well as 2.0 specific
  81. features are clearly marked.
  82.  
  83.         The first chapters deal with datatypes of the C compilers, SAS
  84. and Manx and datatypes of the Amiga operating system. There is
  85. information on general programming guidelines, such as how to properly
  86. access public data structures, determining stack size, with a C
  87. example of how to switch to a bigger stack. Among the programming
  88. guidelines, Babel points out many caveats, which some programmers
  89. ignore, such as OpenLibrary(). "Library base pointers for any of the
  90. IEEE math libraries must not be shared between different tasks!"
  91.  
  92.         There is a discussion on when to use Forbid()/Permit() and
  93. Disable()/Enable(). Many system calls do a Forbid()/Permit() pair
  94. already and these are cross referenced thoroughly, as are many other
  95. functions that a programmer would use daily. I have seen much source
  96. code that calls Forbid()/Permit(), then calls a function that already
  97. does a Forbid()/Permit() pair.
  98.  
  99.         Data caching, copyback, and DMA are mentioned. Self modifying
  100. code and how to implement it are explained, and many good reasons why
  101. you normally should not make use of it.
  102.  
  103.         Chapter 3 is about Assembly language programming, how to call
  104. system functions, about FD files and their structure, libraries and
  105. their structure, macros and header files.
  106.  
  107.         Chapter 4 discusses C programming, in depth startup code and
  108. compiler libraries.
  109.  
  110.         Chapters 5-8 are explicitly about SAS/C and what ANSI C is
  111. about. It discusses the internals of the compiler, preprocessor
  112. symbols, generated symbol references, and memory models such as small
  113. code, small data, large code, and large data.. The examples given are
  114. the familiar "Hello World", one with no startup code and the other
  115. with startup code but in ANSI C with buffered I/O and memory
  116. management. Also mentioned are the keywords __near, __far, and __huge
  117. for coding of base relative code, and absolute code.
  118.  
  119.         Chapter 9 has a very good hardware memory map and details the
  120. A500, A500+, A600, A2000, A3000, and of course the older A1000. It is
  121. specific about where instruction accesses are allowed, data accesses,
  122. what is actual RAM and shows proper caching for the ZorroII and
  123. ZorroIII boards.
  124.  
  125. There is a short discussion about the Kickstart rom and sample source
  126. on how to properly get the version of Kickstart and Workbench. The
  127. famous startup diagnostics are explained; the colors at startup, both
  128. OS1.3 and OS2.x. This also describes the keyboard diagnostics, the
  129. blinking caps lock key, and what the blinks mean.
  130.  
  131.         Chapter 11 reveals everything you ever wanted to know about
  132. Alerts, Gurus, and Traps. Alert numbers and Alert types are detailed,
  133. how and why they happen.
  134.  
  135.         Chapter 12 to the end of the volume details the inner workings
  136. of the disk operating system (DOS). The kernel, dos.library, Command
  137. Line Interface, console handling, and the filesystem are extensively
  138. discussed.
  139.         The console handler, CON:, RAW:, and NEWCON: come first in
  140. this section. Control and escape codes, as well as keycodes are
  141. disclosed. There is C source to opening a CLI window on an Intuition
  142. CUSTOMSCREEN, along with a little bit of BCPL "magic", which is
  143. required prior to Kickstart 2.0.
  144.         Next is the CLI itself and the AmigaShell. The special
  145. characters for input/output redirection are revealed. These include
  146. the "<" ">", the "< >"(under DOS2.0), and ">>" for standard output
  147. append mode only. Babel points out that the "H" bit under DOS2.0
  148. originally meant "hidden", but Shell 2.0 uses the "H" bit to hold pure
  149. executables in the DOS resident list.
  150.         Complete source code to a user shell is in this section and it
  151. is well documented. The internal workings of the system shell are
  152. detailed so the reader can implement their own replacement shells.
  153. Chapter 14 is basically the associated documentation to the user
  154. shell.
  155.         The next section is a short history of the AmigaDOS
  156. filesystem, and a complete guide around the filesystem and its on-disk
  157. data structures. This knowledge would be handy when using a disk editor
  158. to repair a trashed hard disk or floppy. A history of BCPL and how it
  159. works is mentioned, and a source code example of the MakeDir command
  160. in BCPL is included.
  161.  
  162.         The dos.library is documented extensively with explanations of
  163. each function. The general format of each function is as follows:
  164.  
  165.         17.1.142  UnLock()
  166.  
  167.         Purpose: relinquish a lock on an object
  168.  
  169.         Prototype: void UnLock(BPTR);
  170.                          -90    D1
  171.  
  172.         D1 -- BPTR to struct FileLock
  173.  
  174.         A description of UnLock() follows along with any "see also:"
  175. type references, such as CreateDir(), DupLock(), and so on. Since
  176. there are many dos.library functions here, no attempt will be made to
  177. discuss each one.
  178.  
  179. Error codes are documented towards the end of the dos.library section.
  180. Ralph explains how and why each code is implemented.
  181.  
  182.         Chapter 21 deals with Packets and Handlers. This is a complete
  183. reference on how to implement "DOS devices" like CON, AUX,
  184. SER/PAR/PRT, PIPE, and replacement filesystems like CrossDOS and
  185. CD_ROM filesystems. Much like the dos.library section, each packet
  186. action is explained.
  187.  
  188.         21.2.2.2  ACTION_FREE_LOCK
  189.  
  190.         Purpose: release a filesystem object
  191.  
  192.         Implements: AmigaDOS function UnLock()
  193.  
  194.         dp_Type -- ACTION_FREE_LOCK
  195.  
  196.         dp_Arg1 -- BPTR to struct FileLock
  197.  
  198.         dp_Res1 -- LONG (success code; DOS boolean)
  199.         dp_Res2 -- LONG (AmigaDOS error code if dp_Res1 == DOSFALSE)
  200.  
  201. Discussion follows much like the dos section.
  202.  
  203.         There is C source code to "ASynCopy" - file copy using
  204. asynchronous packets and C source for "UnMount" to remove an AmigaDOS
  205. handler and free its resources.
  206.  
  207.         In chapter 22 the format of object modules and executable
  208. programs are discussed along with hunk types, the components of a
  209. hunk, how they work and what they are used for.
  210.  
  211.         Last but not least, this book has appendices, a glossary and
  212. an exhaustive index. In the appendix, Babel notes that the source
  213. listings in the book are mainly for reference, even though they are
  214. fully functional. The listings have been printed in a format to detect
  215. typos and omissions. A three digit checksum has been appended to each
  216. line so that the integrity of the code can be checked. The source for
  217. the "checksum" program is included.
  218.         Makefiles have been supplied for all programs. All programs
  219. were compiled with SAS/C 5.10b and SAS/C 6.2. All sources were
  220. compiled with the release 2.04 headers and the 2.02 headers included
  221. with SAS/C 5.10b.
  222.  
  223. CONCLUSION
  224.  
  225.         The Amiga Guru Book is a "must have" for any serious
  226. programmer. There are many details in this manual that just cannot be
  227. put into any kind of review. There is a lot of everything for every
  228. programmer here. An abundance of basic computer knowledge comes along
  229. with the explanations and examples given. This is a big plus for
  230. novice programmers or someone just looking for a place to start.
  231.         I would have given anything to have had this book available
  232. when I first started peering through the sometimes cryptic Rom Kernel
  233. Manuals. This is the perfect companion to the RKM set especially since
  234. the information is so detailed. It tends to fill in spots in the RKM's
  235. that are hazy or ambiguous.
  236.         Nowhere else will one find so much information on AmigaDOS,
  237. and its filesystem as in this book.
  238.  
  239.  
  240. LIKES AND DISLIKES
  241.  
  242.         I found nothing in The Amiga Guru Book to really dislike. It
  243. is detailed and concise. Explanations are very clear.
  244.         The sheer scope of this book is truly amazing. There isn't
  245. much about Intuition or Graphics, but the Rom Kernel Manuals were
  246. meant for that. When you need to find something about DOS though, this
  247. is the reference to turn to. You will find yourself returning to it
  248. often since it is a very solid source of information.
  249.         One thing I do like is the cross referencing of everything
  250. that needs it.
  251.         Ralph Babel's humor is evidenced on many pages and makes
  252. reading it interesting and enjoyable. At the first of each chapter are
  253. quotes from notable names in the Amiga community, such as Andy Finkel,
  254. Dave Haynie, Michael Sinz, and Leo Schwab. These quotes are humorous
  255. and unusual to find in a book of this type. But then, this is an
  256. exceptional book.
  257.  
  258. "A disk does not have to be inserted to be examined by DISKED."
  259.         -- The AmigaDOS Manual, 2nd edition
  260.  
  261.  
  262. COMPARISON TO OTHER SIMILAR PRODUCTS
  263.  
  264.  
  265.         There really is no similar product to compare this book to,
  266. except the AmigaDOS manuals by Bantam, and they are weak in
  267. comparison. The Guru Book supplements the Amiga Rom Kernel Manuals
  268. very well.
  269.  
  270.  
  271. CONCLUSIONS
  272.  
  273.  
  274.         With 736 pages of excellent information and programming
  275. examples, The Amiga Guru Book is superb. Every serious programmer
  276. would benefit from owning a copy. Information found here is difficult
  277. to find, but Ralph Babel has put it all together rather efficiently.
  278.         Unfortunately, when reviewing this book, I can only touch
  279. lightly on what it has to offer. The Amiga Guru Book is not easily
  280. read in just a few nights, or even a few weeks for that matter.
  281.  
  282. It is after all, a reference book to read and refer to repeatedly.
  283.  
  284.         I rate The Amiga Guru Book 5 stars out of 5.
  285.  
  286. Available from:
  287.  
  288. NBG USA, Inc.                    Almathera Systems
  289. 482 Holly Avenue                 Southerton House
  290. St. Paul, MN 55102               Boundary Business Court
  291. USA                              92-94 Church Road
  292. Voice: +1 (612) 290 9447         Mitcham, Surrey CR4 3TD
  293. Fax:   +1 (612) 290 9449         UK
  294.                                  Voice: +44 181 687 0040
  295.                                  Fax:   +44 181 687 0490
  296.                                  E-Mail: almathera@cix.compulink.co.uk
  297.  
  298. Hirsch & Wolf OHG                Stefan Ossowskis Schatztruhe
  299. Mittelstrasse 33                 Gesellschaft fuer Software mbH
  300. D-56564 Neuwied                  Veronikastrasse 33
  301. Germany                          D-45131 Essen
  302. Voice: +49 (2631) 8399-0         Germany
  303. Fax:   +49 (2631) 8399-31        Voice: +49 (201) 788778
  304.                                  Fax:   +49 (201) 798447
  305.                                  E-Mail: stefano@tchest.e.eunet.de
  306.  
  307. Someware
  308. 27 rue Gabriel Peri
  309. 59186 Anor
  310. France
  311. Voice: +33 27596000
  312. Fax:   +33 27595206
  313. E-Mail: didierj@swad.someware.com
  314.  
  315.  
  316. LIST PRICE
  317.  
  318.         The recommended price is DM 79, in Germany, which would be
  319. about $49.95 (US).
  320.  
  321.  
  322. COPYRIGHT NOTICE
  323.  
  324.  
  325.         Copyright 1994 Patrick Riley
  326.  
  327.         You can contact the author of this review at:
  328.  
  329.         Internet: Pat_A_Riley@cup.portal.com
  330.  
  331.         Or: Patrick Riley
  332.             1600 Iris St.
  333.             Amarillo, TX
  334.             79107
  335.